DirectX12环境配置(1)

您所在的位置:网站首页 program files和program files x86是什么意思 DirectX12环境配置(1)

DirectX12环境配置(1)

2023-06-09 06:38| 来源: 网络整理| 查看: 265

开发环境:visual studio 2022 

第一种配置DirectX12环境得方式。首先创建一个c++得空项目,然后创建一个main.cpp文件。把下面这串代码放进去,先不用管这串代码什么意思,后面会逐行逐句得讲解,因为我们创建得是空项目,默认就是控制台项目,我们需要将项目改成窗体项目,在属性-》连接器-》系统选项里面更改为窗口项目就可以了。

#pragma comment(lib,"d3dcompiler.lib") #pragma comment(lib, "D3D12.lib") #pragma comment(lib, "dxgi.lib") #include #include #include LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 创建窗口 HWND hwnd; WNDCLASSEX wc = {}; wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.lpszClassName = L"DirectX12Sample"; RegisterClassEx(&wc); RECT windowRect = { 0, 0, 800, 600 }; AdjustWindowRect(&windowRect, WS_OVERLAPPEDWINDOW, FALSE); hwnd = CreateWindowEx(0, L"DirectX12Sample", L"DirectX 12 Sample", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, NULL, NULL, hInstance, NULL); // 初始化 DirectX 12 ID3D12Device* pDevice; ID3D12CommandQueue* pCommandQueue; //HRESULT WINAPI D3D12CreateDevice( // _In_opt_ IUnknown * pAdapter, // D3D_FEATURE_LEVEL MinimumFeatureLevel, // _In_ REFIID riid, // Expected: ID3D12Device // _COM_Outptr_opt_ void** ppDevice); D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&pDevice)); D3D12_COMMAND_QUEUE_DESC queueDesc = {}; queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; pDevice->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&pCommandQueue)); // 显示窗口 ShowWindow(hwnd, nCmdShow); // 主消息循环 MSG msg = {}; while (true) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); if (msg.message == WM_QUIT) break; } // 渲染逻辑 // 在此处执行绘制命令 // 交换前后缓冲区 // pCommandQueue->Present(); // 在这里添加帧同步逻辑,确保帧速率 } // 清理资源 // 释放 DirectX 12 对象 return static_cast(msg.wParam); } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } }

第二种配置方式是通过visual studio来配置。

首先还是跟上面一样,先创建一个空项目。然后在属性里面进行配置。

1.选择VC++目录,然后点击包含目录,包含:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared和

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um两个文件夹(注意10.0.19041.0是我电脑上面的版本,大家的可能不一样),最后点击确定。 2.点击库目录,添加相应的库,我们需要添加的库文件夹为:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64。

然后点击确定就可以了

3.添加了库目录,我们还需要添加附加依赖项,所以选择链接器,然后选择输入,最后点击附加依赖项,输入d3d12.lib、dxgi.lib和d3dcompiler.lib,设置好了就可以点击确定了。

将上面环境配置好之后,同样将控制台项目更改为窗体项目,将上面这串代码复制进去,能运行就说明环境配置好了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3